Multi-tenant systems refer to software architectures where a single instance of software runs on a server while serving multiple clients, or tenants. Multi-tenancy is contrasted with multi-instance architectures, where separate software instances or hardware systems are provided for different clients. Multi-tenancy is a key attribute for cloud computing solutions, and allows for significant cost savings by reducing resource overhead by sharing the processing of a single system across multiple tenants. A software-as-a-service (SaaS) provider, for example, can run one instance of its application on one instance of a database and provide web access to multiple customers. In such a scenario, each tenant's data is isolated and remains invisible to other tenants.